home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The X-Philes (2nd Revision)
/
The X-Philes Number 1 (1995).iso
/
xphiles
/
hp48hor2
/
todo.doc
< prev
next >
Wrap
Text File
|
1995-03-31
|
21KB
|
430 lines
(Comp.sys.handhelds)
Item: 2605 by diamant@hpfcbig.SDE.HP.COM (John Diamant)
Subj: Todo program
Date: Tue Apr 02 1991
Description: To-Do Reminder List
Programmer: David Cook - Cookware
Modified: John Diamant (modifications version 1.0)
This program is a generic list manager for the 48SX calculator. It
works not only on todo lists, but any other type of list you care to
manage in the calculator (limited by memory of the calculator).
I'm not going to repeat most of the general announcements from the original
posting as I'm including it at the bottom of this message. Please note in
particular the shareware notice in David's original comments.
Installation instructions are the same as the original (see David's note
at the bottom if you don't know how to install an ASC format program).
If you can't download via ASC and need a cleartext posting (translate
code 3), let me know (email would be fine) and I'll post that as well.
However, to avoid further delay, I'm posting this now in ASC format.
If you use this new TODO version and like it, I'd like to hear from
you (especially if you're using the new features I added to it). If anybody
knows David Cook's email address, I'd like to get in touch with him
to merge my changes into his master version.
The next response to this note will be a question I have regarding
memory efficiency and PICT. If I find out how to improve the memory
efficiency, I'll probably post a modified version, so you'll have to decide
whether you want to wait or download this version. However, the lists you
build with this version should work just fine for a more memory efficient
version and I may be able to provide a simple patch (by the way, the
memory usage problem is not something I introduced with my changes but my
increasing the width of the PICT made it more likely to occur).
To run the program, simply press the RUN button in the variables menu in
the TODO directory (I use the following entry in my CST menu to start up the
program: { "LIST" << TODO RUN >> })
By the way, I have truncated the grocery list substantially from the
originalposting due to it's taking too much space. If you want the full one,
download
the original posting.
The changes from David's version 1.0 are as follows:
Made the OFF key turn the calculator off while in TODO (instead of BLUE
SHIFT [EXIT])
Made the [EDIT] menu key return the current text as the default value for
the new text (which also makes it easy to cancel an edit simply by
pressing ENTER without making any changes).
Made the program font-size independent (with a table for the font sizes
for
the 3 builtin available fonts) and provided a binding (+ and - keys)
for dynamically changing the size of the font while the program is
running. I did this because the small font is good when you want
lots of data, but is hard on the eyes since it's all uppercase, so I
want different fonts at different times (depends on how wide the
data is I'm viewing.
Implemented horizontal scrolling (by character, 10 characters at a time,
and beginning and end of line). I also increased the width of the
virtual screen (adjustable with a local variable in the TODO
directory).
LIST mode (choose which list to make active) has been extended to support
USE, NEW, and DEL menu buttons rather than requiring obscure
keystrokes for these functions.
Made LIST mode more robust (added beeps for incorrect keystrokes).
Deleting a list asks for confirmation (default is no).
Changed the keybinding for deleting an item from a list from DEL to
BLUE SHIFT DEL to avoid risk of accidental deletion.
The ATTN key is trapped via IFERR and appropriate cleanup is done
(note that I do not rely on Bill Wickes special version of IFERR --
the builtin was sufficient for my purpose -- to make sure the
program cleaned up if I accidentally used ATTN instead of EXIT)
Disables clock display during program execution and restores initial
state of clock (displayed or not) on exit (even with ATTN key).
Made the function which create new lists do some error checking on legal
names (using "V" mode for INPUT).
Removed reordering of vars on exit to put RUN at beginning since I
run the program from CST and I don't want to pay the run-time cost
every time I exit to reorder the VARS menu.
> I'll post either when I get all the changes finished or I expect it to be
> awhile before I get the rest done (I'll probably post in a couple of days).
Sorry it was more than a couple of days, but I think you'll be glad I waited
as I did add some functionality almost each day I delayed posting.
How To Use TODO (modified from David's original instructions)
---------------
When the program begins to run, it will display six menu items assigned
to the menu keys. These six items are:
LIST - Catalog of all lists OR create a new list OR delete a list
ADD - Adds a new item to the end of the list OR inserts a blank item
EDIT - Edits the text of an existing item
SORT - Sort any particular list
MARK - Marks an item OR Unmarks an item OR Unmarks all marked items
EXIT - Exits the program and returns you to the HOME directory
The following lists the available KEYSTROKES from the main menu level:
UP ARROW - Scroll the current list towards the top - one item
ORANGE SHIFT UP ARROW - Move the current list toward the top - one page
BLUE SHIFT UP ARROW - Move the current list to the top
DOWN ARROW - Scroll the current list toward the bottom - one
item
ORANGE SHIFT DOWN ARROW - Move the current list toward the bottom - one page
BLUE SHIFT DOWN ARROW - Move the current list to the bottom
LEFT ARROW - scroll the current list towards the left - one char
ORANGE SHIFT LEFT ARROW - scroll the current list towards the left - 10
charsBLUE SHIFT LEFT ARROW - scroll the current list to the left edge
RIGHT ARROW - scroll the current list towards the right - one char
ORANGE SHIFT RIGHT ARROW- scroll the current list towards the right - 10
chars
BLUE SHIFT RIGHT ARROW - scroll the current list to the right edge
BLUE SHIFT DEL - Deletes the current item
ORANGE SHIFT DEL (purge)- Deletes ALL marked items
LIST (menu key) - Get a catalog of all lists
BLUE SHIFT LIST - Enter the name for a brand new list (also
available in LIST environment as function key)
ADD (menu key) - Add an item to the end of the current list
BLUE SHIFT ADD - Insert a blank line ABOVE the current item
EDIT (menu key) - Edit the text of the current line
SORT - Sort the current list in alphabetical order
MARK (menu key) - Mark OR Unmark the current item
BLUE SHIFT MARK - Unmark ALL marked items
ORANGE SHIFT MARK - Same as MARK without the Startrek sound
EXIT - Stop the program and return to the HOME directory
BLUE SHIFT ON (OFF) - Turn the calculate off (turning it on returns to
TODO automatically with no delay)
+ - Increase font to next larger size
- - Decrease font to next smaller size
KEYSTROKES available from LIST screen (entered via LIST menu key):
UP ARROW - Scroll the current list towards the top - one item
DOWN ARROW - Scroll the current list toward the bottom - one
item
USE (menu key) - make top list on screen currently viewed list
ENTER - same as USE
NEW (menu key) - Create new list (same as BLUE SHIFT LIST
above)
DEL (menu key) - Delete top list on screen (will ask for
confirmation)
+ - Increase font to next larger size
- - Decrease font to next smaller size
Note the setting of PW below to change the width of your virtual screen.
The one I posted is set to 200 but you might prefer 262 (2 screens)if
you have sufficient memory.
New Internals (see the original posting for other internals):
Here is a brief listing of what the other routines do:
PW - page width. Number of pixels of width to make the PICT display.
The screen is 131 wide, so use no less than 131, but larger than
131 is required to get any horizontal scrolling.
EXIT - function used to clean up and exit (called from a few places)
CHFONT - takes delta for font number as argument and sets up CHARH,
CHARW, FONT, and H for selected font. Values of 1, -1, and 0
are useful (increase font size by one, decrease font size by one,
and set up font attributes for initialization respectively)
FNTATTR - list containing font attributes (width and height in pixels) for
the 3 builtin fonts. Note that the list is stored as a string
and converted on the fly to avoid it being seen by the TODO
program
as a user-specified list.
CHARH - character height in pixels of currently selected font
CHARW - character width in pixels of currently selected font
H - number of items which can be displayed on one screen in
current font
FONT - number of currently selected font (used in ->GROB call)
Only PW should be changed by a user of the program. The rest are only
documented if you want to change the program. They are managed internally.
John Diamant
Software Engineering Systems Division
Hewlett Packard Co. ARPA Internet: diamant@hpfclp.sde.hp.com
Fort Collins, CO UUCP: {hpfcla,hplabs}!hpfclp!diamant
This code does not come with any warranty express or implied. It's
suitability for any purpose is not the responsibility of the authors.
This response does not represent the official position of, or statement
by, the Hewlett-Packard Company. The above data is provided for
informational purposes only. Note that I'm just a 48SX user like you --
I just happen to work for HP. I do not work in the division that makes
these calculators.
---------------------- original (unmodified) announcement from David --------
Program Id: TODO
Description: To-Do Reminder List
Programmer: David Cook - Cookware
Welcome to Version 1.0 of TODO, a To-Do list reminder system. This program
was written for a friend of mine who refusedto buy a HP48SX unless it had
a TODO program, scheduler (with calendar) and Rolodex (he would rather have
a HP48SX instead of a Wizard etc.., but needed that functionality). Since I
already have a rolodex and calendar program for my 48SX I only needed to
provide this function.
Disclaimer:
I have had my 48SX only about 3 months, so I am sure that this program can
be written better, smaller and faster. I would have used SYSEVAL statements,
but was unsure about compatibility with other revisions (can anyone out
thereanswer this question?).
Shareware Notice:
Feel free to use this program and redistribute it. I ask that if you
redistribute the program, please keep it named TODO, and please keep the
title screen intact. If you make significant changes, please add you name
to the title screen - but keep my name as well. If you find this program
invaluable, a $5 donation would be appreciated. Send any money or comments
to: David Cook, RR #1 Box 351, Whitestown Indiana 46075 - Thank you!
Installing And Running TODO:
The program can be found at the bottom of this post. It is in ->ASC
formatand you will need ASC-> to unscramble it. ASC-> is openly available
on this
forum as well as the HP BBS. (The ASC routines were written by Bill Wickes.)
I'm sure that if you don't have them, an open letter to the NET would
producethem rather quickly!
(1) Cut the code at the bottom of the document, AFTER the CUT HERE line.
Remove the final CUT HERE line at the bottom.
(2) Send this file to your HP48SX, via the Serial Cable, into the file '
TODO'
(3) Hit the TODO button (eg., place the contents of TODO on the command
line)
(4) Execute ASC-> (which you already should have loaded, or load it now)
(5) Store the result back to 'TODO' - it will become a directory
Running...
(6) Simply enter the TODO directory and hit the RUN button which will be
the very first button you see.
From here on out, simply follow (6) to run it.
Features:
* Unlimited number of lists - up to the memory of your machine
* Unlimited size for the lists - up to the memory of your machine
* Ability to scroll the lists by the line or page
* Ability to jump to the beginning or end of any list
* Ability to change lists via a catalog
* Ability to create new lists or delete old lists
* Ability to MARK and UNMARK items on the list
* Ability to UNMARK ALL items on the list
* Ability to delete any single item on the list
* Ability to delete ALL MARKED items on the list
* Ability to insert a new item anywhere in the list
* Ability to sort any list of information
GROCERY LIST
I have created a large (though somewhat incomplete) grocery lists, as a
default. It is large so it does take a bit of time to compile the GROB.
Usethis list as an example list, and delete it if you need the memory or
find it
unusable.
How To Use TODO
---------------
When the program begins to run, it will display six menu items assigned
to the menu keys. These six items are:
LIST - Catalog of all lists OR create a new list OR delete a list
ADD - Adds a new item to the end of the list OR inserts a blank item
EDIT - Edits the text of an existing item
SORT - Sort any particular list
MARK - Marks an item OR Unmarks an item OR Unmarks all marked items
EXIT - Exits the program and returns you to the HOME directory
The following lists the available KEYSTROKES from the main menu level:
UP ARROW - Scroll the current list towards the top - one item
ORANGE SHIFT UP ARROW - Move the current list toward the top - one page
BLUE SHIFT UP ARROW - Move the current list to the top
DOWN ARROW - Scroll the current list toward the bottom - one
item
ORANGE SHIFT DOWN ARROW - Move the current list toward the bottom - one page
BLUE SHIFT DOWN ARROW - Move the current list to the bottom
DEL (keyboard key) - Deletes the current item
ORANGE SHIFT DEL (purge)- Deletes ALL marked items
LIST (menu key) - Get a catalog of all lists
BLUE SHIFT LIST - Enter the name for a brand new list
ADD (menu key) - Add an item to the end of the current list
BLUE SHIFT ADD - Insert a blank line ABOVE the current item
EDIT (menu key) - Edit the text of the current line
SORT - Sort the current list in alphabetical order
MARK (menu key) - Mark OR Unmark the current item
BLUE SHIFT MARK - Unmark ALL marked items
ORANGE SHIFT MARK - Same as MARK without the Startrek sound
EXIT - Stop the program and return to the HOME directory
BLUE SHIFT EXIT - Turn the calculate off (turning it on returns to
TODO automatically with no delay)
Here are some general comments about a couple of the commands...
CURRENT ITEM
The current item (eg., the item you are going to MARK, UNMARK, DELETE etc..)
is the one at the TOP OF THE DISPLAY. To move an item into the current item
area, simply scroll (UP/DOWN arrow) until it is the top item on the list.
This
goes for catalog lists (LIST) as well.
LIST
When in LIST, all current lists in the current directory will be displayed,
in
alphabetical order (eg., sorted). WHILE you are in this mode, UP and DOWN
arrow work (but PAGE UP and PAGE DOWN and GO TO TOP and GO TO END do not
work).
The DEL keyboard key will DELETE a list completely from memory.
MARK
The MARK command allows you to place a marker next to items which you have
completed (eg., check 'em off). Hit MARK the first time to place the marker,
Hit MARK a second time (on the same item) to unmark. When you MARK or
UNMARKa 'startrek' type beep will occur to signify the mark. If you do not
wish
to hear the sound, hit ORANGE SHIFT MARK instead. BLUE SHIFT MARK will
UNMARK
ALL currently marked entries WITHOUT deleting them from the list.
DEL
The normal 48SX DEL key serves to DELETE the current item, when hit under
the normal menu (when hit while in LIST, it deletes entire lists). If you
hit ORANGE SHIFT DEL, the program will delete ALL marked entries - useful
for purging information you have already done.
STARTING UP
If you start the program, and the current list is not found by the program
(eg., you deleted it from the operating system level), the LIST command will
automatically be run by the program. If the LIST command does not see any
lists in memory, the BLUE SHIFT LIST command will automatically be run,
allowing
you to create a new list.
OTHER KEYBOARD KEYS
If you hit an unknown key (eg., not known to the program), the program will
issue a very low tone. Try again!
Internals:
This posting is already too long to give you full details of the program.
Feel free to rip it apart and improve it - just post it back! One routine
you will probably want to add to your 'favorites' list is the routine named
R2D2. This, standalone, routine takes a single number from the stack and
makes your HP48SX sound like a device on Star Trek. The best values, for
the most convincing sound are the values 4 or 5. Simply type
5 R2D2
for a demo. The number indicates the length of time (eg., number of chirps)
for the speaker to make).
Another routine you will find useful is the SORT routine. To use SORT
independently of the program, simply place a LIST of STRINGS on Level 1 and
run SORT. This is NOT a bubble sort, but an insertion sort, and it only
takes
as long to sort the data as it does to read the data one time (plus the
linear
count to find the place to put the data).
Other items you will find useful, if reverse engineering the routines...
Thevariable 'DATA' contains the name of the current to-do list database.
Thesystem creates TEMPORARY variables (only will be seen if you abort the
program
while it is running). 'W' contains a number which signifies which item is
the current iten (1 - S). 'S' contains the total number of items in the
list.
If you abort during a catalog, you will see CATTEMP which contains a list of
all you to-do lists. 'W', 'S' and 'CATTEMP' are all deleted and rebuilt
by the program.
Here is a brief listing of what the other routines do:
RUN - Runs the TODO program
SORT - Sorts a LIST of STRINGS in level 1
MON - High speed GROB editor, used to turn a Mark ON
MOFF - High speed GROB editor, used to turn a Mark OFF
INSTD - INSerts a blank item into the ToDo list above the current item
EDITD - EDIts the current item of the current ToDo list
NEWTD - Creates a NEW ToDo list
CATTD - Handles the LIST command catalog of lists
SEETD - Displays the current list (does NOT build it)
MAKTD - Makes the GROB associated with the current list
ADDTD - Adds a new item to the END of the current list
MARTD - Handles Marking and Unmarking of the current item
UNMTD - Unmarks ALL marked items in the list
WIPTD - Deletes ALL marked items in the list
DELTD - Deletes the current item in the list
R2D2 - Takes a repeat value from level 1 and issues StarTrek sounds
AGAIN... these routines should only be used for editing and changing the
program. Use the RUN routine to execute the program (just hit RUN) and the
program will automatically issues these routines for you in responce to the
menu keys you hit (as described above). I provided the details above only
for those who want to see how it runs!
ENJOY!!!!!
--- rfmail 0.3.9
* Origin: Bonafido Usenet <====> Fido Gateway. (3:771/170.0)
SEEN-BY: 771/110 170 180
FSC-Control: PATH: 771/110